"""
字典元素是无序的，可改变的并且可以使用索引index
字典用{}声明
字典类似于序列对 (key: pairs)
"""

def testMap():
    fruitsSet = {
        'cherry': 'red',
        'apple': 'green',
        'banana': 'yellow'
    }

    print(isinstance(fruitsSet, set))

    # 通过key访问数值
    print("fruitsSet['apple'] is {}".format(fruitsSet['apple']))

    # 修改字典元素的内容
    fruitsSet['apple'] = 'red'
    print("fruitsSet['apple'] = 'red' is {}".format(fruitsSet))

    # 添加元素
    fruitsSet['grape'] = 'green'
    print("fruitSet is {}".format(fruitsSet))

    # 如果想获取字典的key, 可以使用list获取所有的key
    print("list(fruitsSet) is {}".format(list(fruitsSet)))
    # 如果想对字典的key进行排序，直接使用
    print(sorted(fruitsSet))

    # 删除字典的元素
    del fruitsSet['grape']
    print("def fruitSet['grape'] is {}".format(fruitsSet))

    # 字典的构造函数也可使用键值对的序列作为参数
    dicConstructor = dict([('a',1), ('b',2)])
    print(dicConstructor)

    # 字典生成式类似于列表生成式
    dicViaGenerator = {x : x ** 2 for x in range(10) if x % 2 == 0}
    print(dicViaGenerator)

    # 如果key是比较简单的string的时候，也可以考虑如下形式
    dicStr = dict(jack = 123, mark = 1244)
    print(dicStr)

testMap()